#include "json/json.h"
#include <iostream>
#include <sstream>
#include <memory>

using namespace std;

int main()
{
    Json::Value tmp;
    tmp["姓名"]="mlj";
    tmp["年龄"]=22;
    tmp["成绩"].append(99);
    tmp["成绩"].append(100);

    // Json::StreamWriterBuilder sb;
    // unique_ptr<Json::StreamWriter> writer(sb.newStreamWriter());

    // ostringstream os;
    // writer->write(tmp,&os);
    // cout<<os.str();
    
    //先创建建造器,再获取序列化字符串
    Json::StreamWriterBuilder swb;
    string st=Json::writeString(swb,tmp);
    cout<<st<<endl;

    Json::Value tmp1;

    //先创建建造器,再获取反序列化字符串
    unique_ptr<Json::CharReader> reader(Json::CharReaderBuilder().newCharReader());
    reader->parse(st.c_str(),st.c_str()+st.size(),&tmp1,nullptr);

    cout<<tmp1["姓名"].asCString()<<endl;
    cout<<tmp1["年龄"].asInt()<<endl;
    for(int i=0;i<tmp1["成绩"].size();i++)//也可以用迭代器
    {
        cout<<tmp["成绩"][i].asInt()<<" ";
    }
    cout<<endl;
    return 0;
}